1. Field of the Invention
The present invention relates to data processing systems and more particularly to methods for improving efficiency of execution of application programs written in high level program language.
Currently, single large FORTRAN application programs cannot utilize the full computational capability of tightly coupled multiprocessing (MP) configurations to achieve minimum turn-around time. This limitation is due to the Single Instruction/Single Data (SISD) environment which is currently provided for FORTRAN application programs. The SISD environment limits the FORTRAN application programs to using only one of the processors of an MP configuration at any instant of time.
The Multiple Instruction Multiple Data (MIMD) environment permits a single FORTRAN application program to use all the processors of an MP configuration concurrently and thus utilize the configuration's full computational capability.
FORTRAN, the primary programming language for Scientific and Engineering applications, has to date provided no programming language standard for MIMD execution. Standard FORTRAN application programs can only execute in SISD mode. Therefore a single program, written in FORTRAN, cannot utilize more than one processor when executing on a tightly-coupled multiple processor (MP) system.
The method of the present invention provides MIMD support for application programs written in FORTRAN or other similar languages. This support allows a single program to be structured into computationally independent sections which can execute in parallel by utilizing additional processors of a tightly coupled MP configuration. The MIMD operation can improve application turn-around time by allowing more intensive use of the computational facilities of the MP configuration. The method of the present invention allows such parallel execution on tightly-coupled MP configurations, without requiring system, hardware or language extensions.
2. Description of the Prior Art
The following are systems representative of the prior art.
Application Program Performance Extender (IBM Program Number 5798-DNL) running on an IBM 308X Data Processing System
FORTRAN Interface routines described in an article entitled "Multitasking on the Cray X-MP-2 Multiprocessor" Computer, Vol. 17 No. 7, July 1984, p 62.
FORTRAN language extensions described in an article entitled "Performance Measurements on HEP- A Pipelined MIMD Computer" 10th Annual International Conference on Computer Architecture, Conference Proceedings, Stockholm Sweden, June 13-17, 1983, page 207.
Special-purpose hardware configurations:
The IBM 3838 Array Processor, attached to a host processor PA1 The Floating Point Systems Inc. (FPS) array processors, attached to a host processor PA1 Two Digital Equipment Corp. VAX 11/780 machines with a Dual Port Memory Subsystem
All of these systems provide some FORTRAN access to parallel processing capability. The Application Program Performance Extender running on an IBM 308X Data Processing System includes task management functions, work queue management functions and task synchronization functions to permit COBOL or FORTRAN application programs to be run on tightly coupled multiprocessor systems with significant reduction in total processing time.
Several differences exist between the operation of the Application Program Performance Extender (APPE) and the method according to the present invention.
The Application Program Performance Extender operates by invoking single MVS multi-tasking related functions under direct command of the application program. Interrelationships between these functions must be managed by the application program. APPE also operates by passing arguments for all work in a given task as part of the ATTACH macro. In addition, APPE operates on application program-supplied data areas for its own internal parameters.
The method of the present invention operates by invoking a number of MVS multi-tasking related functions and managing their interrelationship automatically. It also builds the argument list for each piece of work to be performed by a task at execution time. In addition, it operates using its own internal data areas only. No application program supplied data areas are required.
The X-MP-2 MIMD environment is similar to the APPE system in that it provides low level constructs to allow concurrency and requires that the application program manage the relationships between these constructs.
The IBM 3838 and the FPS array processors are additional, special purpose hardware devices attached to a general purpose host processor. These devices can only be used by programs which have been specially coded for their use and cannot be used by other general data processing programs which may be run on the host processor.
The Denelcor HEP and the two VAX 11/780 machines sharing a common memory are also examples of special purpose hardware configurations, not generally applicable to the general data processing environment.
In contrast, the method of the present invention provides parallel execution on standard tightly-coupled MP configurations and does not require any special purpose or dedicated hardware which cannot be used by other programs.
The method of the present invention not only operates in a standard hardware environment, but it also utilizes only standard system software and procedures as well. This contrasts with the preceding examples in the following manner:
1. The IBM 3838 requires special, non-FORTRAN programming techniques utilizing a special subsystem interface. PA0 2. The FPS attached array processors require the use of a special compiler and a special linkage editor to prepare FORTRAN programs for execution. PA0 3. The special purpose hardware configurations require special purpose software systems which are not applicable to the general data processing environment. PA0 4. The HEP-1000 requires FORTRAN Language extensions.